Reference: FilterDefinition |
Every VirtualDub filter contains a FilterDefinition structure to describe itself.
Definition |
Fields modified by VirtualDub are displayed in red; fields that can be omitted (NULLed) are displayed in blue.struct FilterDefinition { struct FilterDefinition *next, *prev; FilterModule *module; char * name; // Name of filter char * desc; // Filter description char * maker; // Filter author (reserved - set to NULL) void * private_data; // Filter private use int inst_data_size; // Size of filter's fa->filter_data structure FilterInitProc initProc; FilterDeinitProc deinitProc; FilterRunProc runProc; FilterParamProc paramProc; FilterConfigProc configProc; FilterStringProc stringProc; FilterStartProc startProc; FilterEndProc endProc; CScriptObject *script_obj; // Sylia script object FilterScriptStrProc fssProc; }
Remarks |
VirtualDub links this structure directly into its linked list, and must modify the structure to do so. Thus, attempting to mark this structure as const will result in a crash, as will adding the same filter more than once or reusing the filter structure. The structure must exist as long as the filter definition is linked into the global chain.
Filter names should be kept relatively short, and free of obnoxious characters; this is the name that will appear in the filter list, and it is inappropriate to use "Foo Bar's Brand Spanking New Cool Filter" as your filter name. Similarly, the description should also be kept short, and PhD dissertations on the design or use of your filter should be avoided.
It is customary, although not required, to tag the description with the capabilities of your filter. List these descriptions, as appropriate, back-to-back on the third line of your description (you may skip lines with \n:
VirtualDub external filter SDK 1.05 | ©1999-2001 Avery Lee <phaeron@virtualdub.org> |